//gioco dell'oca in javascript
//sviluppato da mattia franchetto per scopi scolastici
//itis peano - 3bi

//inizializzo variabili e array


$(document).ready(function(){

	posiz1=1;
	posiz2=1;
	posiz=1;

	locanda1=3;
	locanda2=3;
	locanda=3;

	play=true;

	prigione=false;
	prigione1=false;
	prigione2=false;

	cancella="#c"+1;
	cancella1="#c"+1;
	cancella2="#c"+1;

	casoche=new Array(5,14,23,32,41,50,59);

	casspec=new Array(19,31,42,52,58);	


    	$("#corpo").animate({width:760},1500);
	$("#corpo").animate({height:760},1500);

	$("input[name='avvia']").click(start);

	$("input[name='lanciadadi']").click(playing);

	$("input[name='riavvia']").click(restart);

});



//gioco e cronaca
function playing(){

	if (play){
		posiz=posiz1;
		g=$("#input_g1").val();
		prigione=prigione1;
		locanda=locanda1;}
	else{
		posiz=posiz2;
		g=$("#input_g2").val();
		prigione=prigione2;
		locanda=locanda2;}
		cancella="#c"+posiz;
			$("#turno").html("Sta giocando:  "+g);
		if (locanda<3){
			$("#azione").html("Sei nella locanda, devi aspettare 3 turni.");
			locanda=locanda+1}
		else{
			locanda=3;
			if (prigione==true){
				dado=numrnd();					
				$("#ris").html("Risultato del dado:  "+dado);
				if (dado>7){
					$("#azione").html("Sei libero!");
					prigione=false;}
				else{
					$("#azione").html("Mi dispiace ma rimani ancora in prigione!")}}
					else{
						dado=numrnd();
						$("#ris").html("Risultato del dado:  "+dado);
						posiz+=dado;
						if (posiz==casspec[0]){
							$("#azione").html("Sei entrato nella locanda, devi aspettare 3 turni.");
							locanda=0}
						else{
							if (posiz==casspec[1]){
								prigione=true;
								posiz=42;
								$("#azione").html("Sei nel pozzo, finisci in prigione!");}
							else{
								if (posiz==casspec[3]){
									posiz=39;
									$("#azione").html("Labirinto,torni alla casella 39.")}
								else{
									if (posiz==casspec[2]){
										$("azione").html("Sei rimasto imprigionato!");
										prigione=true;}
									else{
										if(posiz==casspec[4]){
											$("#azione").html("Scheletro! Torni alla casella 1.");
											posiz=1}
										else{
											if ((posiz==casoche[0]) || (posiz==casoche[1]) || (posiz==casoche[2]) || (posiz==casoche[3]) || (posiz==casoche[4]) || (posiz==casoche[5]) || (posiz==casoche[6])){
												posiz+=dado;
											if (posiz==63){
												$("#azione").html("Avanzi di:  "+dado+" e vinci!");
												alert(g+" ha vinto!");
												if (confirm('Vuoi rigiocare?')){
 														restart();}
											else{
													if (posiz>63){
														diff=posiz-63;
														posiz=posiz-dado-diff;
														$("#azione").html("Peccato, ma hai superato il traguardo! Retrocedi di:  "+diff)}
													else{
														$("#azione").html("Sei in una casella con l'Oca, avanzi di : "+(dado*2))}}}
										else{
													if (posiz==63){
															$("#azione").html("Avanzi di:  "+dado+" e vinci!");
															alert(g+" ha vinto!");
															if (confirm('Vuoi rigiocare?')){
    															restart();}
															else{
																$("input[name='avvia']").attr('disabled',true);
																$("input[name='lanciadadi']").attr('disabled',true);}}
													else{
															if (posiz>63){
																		diff=posiz-63;
																		posiz=posiz-dado-diff;
																		$("#azione").html("Peccato, ma hai superato il traguardo! Retrocedi di:  "+diff);}
															else{
																		$("#azione").html("Avanzi di:  "+dado);}
																	};
															};
														};
														
												};
											};
									};
							};
					};
			};
	};
		if (play){
			
			play=false;
			posiz1=posiz;
			prigione1=prigione;
			locanda1=locanda;
			posizione1="#c"+posiz1;
			cancella1=cancella;
			move1(posizione1);
			clear1(cancella1)}
		else{
			play=true;
			posiz2=posiz;
			prigione2=prigione;
			locanda2=locanda;
			posizione2="#c"+posiz2;
			cancella2=cancella;
			move2(posizione2);
			clear2(cancella2)};

	}


//muove i giocatori
function move1(posizione_move1){
			if ($(posizione_move1).html()=="G2"){
				$(posizione_move1).html("G2 G1");}
				else{
					$(posizione_move1).html("G1")};
}
function move2(posizione_move2){
			if ($(posizione_move2).html()=="G1"){
				$(posizione_move2).html("G1 G2")}
			else{
				$(posizione_move2).html("G2")};
}
			
//controlla input e lancia il gioco
function start(){
	if ($("#input_g1").val()=="" || $("input_g2").val()==""){
		alert("Inserite i vostri nomi prima di iniziare")}
		else{
			$("input[name='avvia']").attr("disabled",true);
			$("#input_g1, #input_g2").attr("disabled",true);
			$("input[name='lanciadadi']").attr("disabled",false);
			playing()};
}
function clear1(cl){
	cl=$(cl);
	if (cl.html()!=posiz1){
	if (cl.html()=="G1"){
		cl.html("")}
		else{
			if ((cl.html()=="G1 G2") || (cl.html()=="G2 G1")){
				cl.html("G2")}}}
}
//cancella le posizioni del giocatore 2

function clear2(cl2){
	cl2=$(cl2);
	if (cl2.html()!=posiz2){
	if (cl2.html()=="G2"){
		cl2.html("")}
		else{
			if ((cl2.html()=="G1 G2") || (cl2.html()=="G2 G1")){
				cl2.html("G1")}}}
}
//funzione per riavviare
function restart(){
	
	location.href="index.html";
}
//numero random
function numrnd(){
	do{
		n=Math.round(Math.random()*12);
	}while (n==0 || n==1);
	return n;
}




